<?php

class MuestraBN  {
	
	public  $mensaje = null;
	
	public function getMensaje() {
		return $this->mensaje;
	}
	
	public function generarPK() {	
		$criteria = new Criteria(MuestraPeer::DATABASE_NAME);
		$n = MuestraPeer::doCount($criteria);
		$n++;
		return $n;
	}
	
	public function validarCodMuestra($codText, $cod){
	
		$criteria = new Criteria(MuestraPeer::DATABASE_NAME);
		$criteria->add(MuestraPeer::COD_MUESTRA_TEXT, $codText);
		$criteria->add(MuestraPeer::COD_MUESTRA , $cod, Criteria::NOT_EQUAL);
		$v = MuestraPeer::doSelect($criteria);
	
		$n = count($v);
	
		if($n){
				
			$msj = "El codigo Muestra(".$codText.") ya se encuentra registrado" ;
			throw new Exception($msj);
		}
	
	}
	
	public function obtenerMuestras($codUe) {
	
		$criteria = new Criteria(MuestraPeer::DATABASE_NAME);
		$criteria->add(MuestraPeer::CODUE, $codUe);
	
		$aObj = MuestraPeer::doSelect($criteria);
	
		$muestras = array();
	
		foreach($aObj as $obj) {
			$muestras[$obj->getCodMuestra()] = $obj;
		}
	
		return $muestras;
	}
	
	
	public function crearMuestra(Muestra $entity) {
		
		$resultado = false;
		
		try {
		
			$pk = $this->generarPK();
			
			$this->validarCodMuestra($entity->getCodMuestraText(), $pk);
			 
			$entity->setCodMuestra($pk);
			
			$resultado = $entity->save();
			
			if($resultado) {
				$this->crearBaseMuestra();
			}
		}
		catch(Exception $e) {
			$this->mensaje = $e->getMessage();
			$resultado = false;
		}
		
		return $resultado;
		
	}
	
	public function actualizarMuestra( Muestra $entity) {

		$resultado = false;
		
		try {
			
			$this->validarCodMuestra($entity->getCodMuestraText(), $entity->getCodMuestra());
		
			$resultado = $entity->save();
	
			$this->actualizarBaseMuestra();
		
		} catch(Exception $e) {
			$this->mensaje = $e->getMessage();
			$resultado = false;
		}		
		
		return $resultado;		
	}
	
	public function eliminarMuestra($idDeposito) {
		
	}
	
	public function crearBaseMuestra() {
		//$this->actualizarMM($this->codUe); //objUE->getCodue());
	
	}
	
	public function actualizarBaseMuestra() {
		//$this->actualizarMM($this->codUe); //objUE->getCodue());
	
	}
	
	
	public static function obtenerPorPK($pk){
	
		$entity = MuestraPeer::retrieveByPK($pk);
	
	
		return $entity;
	
	}
	
	
}
?>